:art: thermometer_bind / thermometer_list

huangqimin001 2 jaren geleden
bovenliggende
commit
c1697b9b8b

+ 33 - 0
api/thermometer_views.py

@@ -0,0 +1,33 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+from django_logit import logit
4
+from django_response import response
5
+from paginator import pagination
6
+
7
+from thermometer.models import ThermometerInfo
8
+
9
+
10
+@logit
11
+def thermometer_bind(request):
12
+    user_id = request.POST.get('user_id', '')
13
+    macid = request.POST.get('macid', '')
14
+
15
+    ThermometerInfo.objects.get_or_create(user_id=user_id, macid=macid)
16
+
17
+    return response()
18
+
19
+
20
+@logit
21
+def thermometer_list(request):
22
+    user_id = request.POST.get('user_id', '')
23
+    page = request.POST.get('page', 1)
24
+    num = request.POST.get('num', 20)
25
+
26
+    thermometers = ThermometerInfo.objects.filter(user_id=user_id)
27
+    thermometers, left = pagination(thermometers, page, num)
28
+    thermometers = [thermometer.data for thermometer in thermometers]
29
+
30
+    return response(data={
31
+        'thermometers': thermometers,
32
+        'left': left,
33
+    })

+ 11 - 3
api/urls.py

@@ -2,15 +2,23 @@
2 2
 
3 3
 from django.urls import re_path
4 4
 
5
-from api import mini_views, oauth_views
5
+from api import mini_views, oauth_views, thermometer_views
6 6
 
7 7
 
8 8
 urlpatterns = [
9
-    re_path(r'^mini/login$', mini_views.mini_login_api, name='mini_login_api'),  # 小程序登录
10
-    re_path(r'^mini/userinfo$', mini_views.get_userinfo_api, name='get_userinfo_api'),  # 获取用户信息
11 9
 ]
12 10
 
13 11
 urlpatterns += [
14 12
     re_path(r'^3rd/or$', oauth_views.oauth_redirect, name='3rd_or'),
15 13
     re_path(r'^3rd/oauth_redirect$', oauth_views.oauth_redirect, name='3rd_oauth_redirect'),
16 14
 ]
15
+
16
+urlpatterns += [
17
+    re_path(r'^mini/login$', mini_views.mini_login_api, name='mini_login_api'),  # 小程序登录
18
+    re_path(r'^mini/userinfo$', mini_views.get_userinfo_api, name='get_userinfo_api'),  # 获取用户信息
19
+]
20
+
21
+urlpatterns += [
22
+    re_path(r'^thermometer/bind$', thermometer_views.thermometer_bind, name='thermometer_bind'),
23
+    re_path(r'^thermometer/list$', thermometer_views.thermometer_list, name='thermometer_list'),
24
+]

+ 0 - 0
thermometer/__init__.py


+ 12 - 0
thermometer/admin.py

@@ -0,0 +1,12 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+from django.contrib import admin
4
+
5
+from thermometer.models import ThermometerInfo
6
+
7
+
8
+class ThermometerInfoAdmin(admin.ModelAdmin):
9
+    list_display = ('thermometer_id', 'user_id', 'macid', 'status', 'created_at', 'updated_at')
10
+
11
+
12
+admin.site.register(ThermometerInfo, ThermometerInfoAdmin)

+ 5 - 0
thermometer/apps.py

@@ -0,0 +1,5 @@
1
+from django.apps import AppConfig
2
+
3
+
4
+class AccountConfig(AppConfig):
5
+    name = 'thermometer'

+ 31 - 0
thermometer/migrations/0001_initial.py

@@ -0,0 +1,31 @@
1
+# Generated by Django 3.2.14 on 2022-07-05 15:04
2
+
3
+from django.db import migrations, models
4
+import shortuuidfield.fields
5
+
6
+
7
+class Migration(migrations.Migration):
8
+
9
+    initial = True
10
+
11
+    dependencies = [
12
+    ]
13
+
14
+    operations = [
15
+        migrations.CreateModel(
16
+            name='ThermometerInfo',
17
+            fields=[
18
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
19
+                ('status', models.BooleanField(default=True, help_text='Status', verbose_name='status')),
20
+                ('created_at', models.DateTimeField(auto_now_add=True, help_text='Create Time', verbose_name='created_at')),
21
+                ('updated_at', models.DateTimeField(auto_now=True, help_text='Update Time', verbose_name='updated_at')),
22
+                ('thermometer_id', shortuuidfield.fields.ShortUUIDField(blank=True, db_index=True, editable=False, help_text='体温计唯一标识', max_length=22, null=True, unique=True)),
23
+                ('user_id', models.CharField(blank=True, db_index=True, help_text='用户唯一标识', max_length=32, verbose_name='user_id')),
24
+                ('macid', models.CharField(blank=True, help_text='设备号', max_length=32, null=True, verbose_name='macid')),
25
+            ],
26
+            options={
27
+                'verbose_name': '体温计信息',
28
+                'verbose_name_plural': '体温计信息',
29
+            },
30
+        ),
31
+    ]

+ 0 - 0
thermometer/migrations/__init__.py


+ 27 - 0
thermometer/models.py

@@ -0,0 +1,27 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+from django.db import models
4
+from django.utils.translation import gettext_lazy as _
5
+from django_models_ext import BaseModelMixin, SexModelMixin
6
+from shortuuidfield import ShortUUIDField
7
+
8
+
9
+class ThermometerInfo(BaseModelMixin):
10
+    thermometer_id = ShortUUIDField(_('thermometer_id'), max_length=32, blank=True, null=True, help_text='体温计唯一标识', db_index=True, unique=True)
11
+    user_id = models.CharField(_('user_id'), max_length=32, blank=True, help_text='用户唯一标识', db_index=True)
12
+    macid = models.CharField(_('macid'), max_length=32, blank=True, null=True, help_text='设备号')
13
+
14
+    class Meta:
15
+        verbose_name = _('体温计信息')
16
+        verbose_name_plural = _('体温计信息')
17
+
18
+    def __unicode__(self):
19
+        return self.pk
20
+
21
+    @property
22
+    def data(self):
23
+        return {
24
+            'thermometer_id': self.thermometer_id,
25
+            'user_id': self.user_id,
26
+            'macid': self.macid,
27
+        }

+ 4 - 0
thermometer/tests.py

@@ -0,0 +1,4 @@
1
+from django.test import TestCase
2
+
3
+
4
+# Create your tests here.

+ 4 - 0
thermometer/views.py

@@ -0,0 +1,4 @@
1
+from django.shortcuts import render
2
+
3
+
4
+# Create your views here.

+ 1 - 0
tiwen/settings.py

@@ -57,6 +57,7 @@ INSTALLED_APPS = [
57 57
     'commands',
58 58
     'api',
59 59
     'account',
60
+    'thermometer',
60 61
 ]
61 62
 
62 63
 MIDDLEWARE = [